The present invention relates generally to the art of hierarchical structures for telecommunication switching nodes where each switching node comprises a switch and Intelligent Networking (IN) coprocessor. More particularly, the present invention relates to the use of group communication technology to implement a distributed IN coprocessor.
The distributed IN coprocessor of the present invention comprises at least one external adaptor (EA), multiple query elements (QE), and an update interface (UI), all of which are the members of the same Horus group. In such a distributed architecture the data bases used by the IN coprocessor are split among the structural elements of the coprocessor to provide for increased information storage capacity and for the possibility of periodical "on the fly" software upgrades without halting the IN coprocessor.
The concept of the intelligent network (IN) came to existence as a result of a merger of advanced telecommunication and computer technologies to become a key feature under a broad range of new functions and services that modern telecommunication service providers offer businesses and individual customers. The term "intelligent network" has come to identify an interconnected system of functional elements that can implement changes and modifications of itself or its behavior through software means as opposed to hardware.
Before the intelligent network era, the intelligent part of servicing an incoming call in a telecommunication system was performed either by human operators or by fixed logic relay switches. This simple mode of a telecommunication system provided the customers with such a simple phone service as call routing, for example, but that system was incapable of providing advanced services like 1-800 or 1-900 calls, conference calls, caller ID, call forwarding and the like. In other words, the functions of call processing and actual delivery of the calling service were performed by the same switching node with only very limited call processing capability.
With the development of the foregoing computer technology, fixed relay logic devices gradually became obsolete and were replaced by programmable switching devices which were flexible and easily adaptable to changes. Such computer programmable switches were suitable for handling much higher volumes of phone calls at a much higher speed while offering the subscribers a range of more sophisticated available telecommunication services. Another change in the functionality of the switching devices was brought about by the advent of the "out-of-band" signalling, meaning that the voice channels of a telecommunication system were separated from the channels that processed the information necessary to handle the calls, like routing or billing. Thus, there arose a possibility of expanding the range of available features and services in a telecommunication system by combining the benefits of a flexible programmable switching device with a separate data signaling infrastructure. Such a possibility was realized in the electronic switching system. The current, seventh version of the electronic switching system, signaling system 7 (SS7), has become the standard for all communication link exchanges in the U.S. and many other countries.
The SS7 system switch itself is capable of performing a well known set of simple tasks, such as call routing for regular calls, hang-up processing and other simple functions. But when the SS7 system switch receives a more complex request that it is not programmed to service, it has to place a query to another network element to handle the request. The part of the SS7 telecommunication network that services the complex requests and relays back to the switch the instructions as to how to further handle such requests is the intelligent network (IN) coprocessor.
An example of a complex request that requires more intelligent handling than a switch can provide and, therefore, requires the participation of the IN coprocessor, is a 1-800 number call. In this case the SS7 switch does not immediately route the call, but connects to the signaling network and communicates the query to the IN coprocessor.
The IN coprocessor responds to the query by providing the switch with two sets of instructions necessary to service the 1-800 call. First, it converts the toll-free number into the real standard-format number using a database that contains the pertinent information and instructs the switch to direct the call to the real number. Second, the IN coprocessor relays back to the switch the billing instructions that reverse the charge for the call to the receiving party. Other similar typical functions performed by the IN coprocessor include caller ID, automatic transferring of a call according to the caller's phone number, conference calling, and voice menus.
Since the address-translation functions together with handling call routing and billing instructions in the IN coprocessor are managed by programmable computers, it becomes relatively easy and inexpensive to develop software and reprogram the computers in a way that allows implementing various combinations of old and new telecommunication services for different categories of calls and groups of customers without having to re-implement the switches themselves. The ability to provide customized responses to the incoming requests by programming or reprogramming the query-handling computers within the network and, in particular, within the IN coprocessor, is the underlying concept of the intelligent networking technology.
Typically the intelligent network comprises the following functional elements: service switching points, service control points, service transfer points, service management system, service creation environment, service nodes, adjuncts, and intelligent peripherals. The elements of the IN network that are of importance in describing novelty and advantages of the present invention are the following:
service switching points (SSP), serving as an interface between customers placing calls and the rest of the intelligent network. These are programmable electronic switching systems that are programmed to determine whether an incoming call requires special handling and to relay the appropriate request to the IN coprocessor for call routing and billing instructions. PA1 service control points (SCP) that are "the brain" of the intelligent network. A SCP is an on-line database that contains all kinds of customized information about subscribers, service delivery instructions and other pertinent call processing data. Service control points function as call and service control elements of the IN network by relaying call processing information to the service switching points via multiple communication links, like SS7 communication links. PA1 signal transfer points (STP) that are packet switches (often referred to in the Internet context as "routers") of high capacity and reliability. Their main function is to route signals between switches and between SSPs and SCPs.
Until recently, IN coprocessors have most often been implemented by fault tolerant computers, such as the ones manufactured by Tandem(TM), or Stratus(TM), usually connected by dual channels to a switch. The dual channel connection between different elements of the IN network ensures that there will be no single point of failure. Although this implementation meets the fault-tolerance requirements of the SS7 specification, it also has two limitations. First, a single machine has a limited memory capacity or disk space, limiting the size of the databases it can store and handle. Second, when a single machine is used, it is either very difficult or completely impossible to perform "on the fly" software upgrades without halting the entire IN coprocessor.
In the prior art the above limitations were typically overcome by using a clustered style of distributed architecture to implement the IN coprocessor. In such a distributed architecture the databases used by the IN coprocessor are split among the elements of the coprocessor. These elements of the coprocessor are computers that are interconnected and can communicate with each other. The split database concept allows the IN coprocessor to store and process much more information than a single computer IN coprocessor would be capable of storing and processing, as well as allowing it to bring down a single computer, load the new version or upgrade the software in that computer, bring the computer up, and then repeat this procedure with other computers, one at a time, until all the computers of the coprocessor have been updated.
For example, in U.S. Pat. No. 5,386,467 to Ahmad a distributed intelligent network communication system comprising the network of interconnected multiple databases (SCPs) and switches (SSPs) is disclosed. The problem addressed by that Patent was handling complex telecommunication services that require more exchanges of data between SSPs and SCPs without delays in obtaining the call processing information. The solution disclosed by Ahmad was to preprogram the SCPs of the network to recognize the situations where handling the call required additional information from another SCP. After such a recognition has taken place, the Ahmad IN network is adapted to relay a query between a switch and a database or between different databases. The elements of that IN system include, in particular, a signaling network that interconnects switches and multiple data bases. The signaling network transmits messages between SSPs and SCPs in SS7 protocol. In that network the communication occurs not only between a switch and a data base, but also between different data bases. In a situation when a data base cannot answer a request, it forwards the request to another database instead of sending the request back to the switch that originally issued the request. When another data base generates the reply, it communicates the reply to the switch. According to a different mode of processing queries disclosed in the Ahmad Patent, a database that cannot handle the request forwards it to another switching system for further processing.
U.S. Pat. No. 5,469,500 to Satter et al. discloses a call processing architecture that includes external information sources coupled with a plurality of distinct and modular servers for connecting the call processor to the external information sources. The servers operate independently from the call processor and are reconfigurable without affecting the functionality of the call processor. The disclosed architecture is characterized by the ability to use both a dedicated service node for autonomously delivering a particular calling service and a SCP with access to the resources of an intelligent periphery (IP).
But in order to provide a reliable IN coprocessor in good operable condition there still exist several problems that the prior art Patents failed to address. These problems include the implementation of the IN coprocessor capable of sustaining a large number of requests (calls) per second (in other words, high throughput), the implementation of an architecture that uses a cluster of computers as a coprocessor for a single switch, and creating a distributed IN coprocessor that meets the fault tolerance requirements of the SS7 specification.
The advantages of the present invention over the prior art references reside in the fact that for the first time the operability requirements expected from an IN coprocessor are met by using group communication technology to implement a distributed IN coprocessor while successfully solving the problems of achieving high throughput and low latency communication, and maintaining the necessary fault tolerance requirements. In other words, the present invention uses group communication technology for building fault tolerant high performance reactive real-time applications, such as distributed IN coprocessors. Taking into account the fact that IN coprocessors represent a multi-billion dollar hardware market, it is highly desirable to implement a distributed IN coprocessor architecture that is free of performance problems of the distributed IN systems disclosed in the prior art Patents that do not use the group communication approach.
Group communication systems use the abstraction of process groups to simplify the design and implementation of fault-tolerant distributed applications. Process groups are an addressing domain, allowing messages to be sent either to the entire group, or to a subset of the members of the group by invoking a single downcall. A group communication system guarantees that such a message is delivered reliably to all of its recipients. Another useful feature of group communication technology is that group communication systems provide failure detection, which notifies members of the group about failures of other members, and automatically reconfigures the group to exclude a failed member whenever a failure occurs, or to bring back into the group recovered members once they have recovered. In the latter case, group communication systems also provide tools for updating recovered members regarding the new state of the system. For a more detailed description of group communication technology and systems, reference may be made to United States provisional patent application entitled "Horus: A Flexible Group Communication System" filed Aug. 28, 1996 under Express Mail Certificate of Mailing No. EH762631712US and to United States provisional patent application entitled "A Framework For Protocol Composition In Horus" filed Aug. 28, 1996 under Express Mail Certificate of Mailing No. EH762631638US, the disclosures of which are hereby incorporated by reference.
None of the prior art Patents implements group communication technology in a telecommunication system for achieving a high throughput by buffering requests that correspond to several calls for a short while and then sending them together, using circular queues of requests to limit the number of timer expiration events on the implementation of the external adaptors, and using the water marks approach to overcome overloads in the system. Moreover, the Ahmad system does not provide for the devices similar to the external adaptors in the present invention that handle queries according to the queries'parity and serve either as a primary or a backup external adaptor in servicing a query. Similarly, the method described in the Satter patent does not describe the method of handling a query by external adaptors and multiple query elements.
Another problem that has not been addressed in the prior art Patents is achieving a high throughput by using a clustered IN coprocessor for a single switch. Though it is understood that the principles of the present invention are applicable to building IN networks with the IN coprocessors communicating with many switches, the present invention specifically considers the mode of the operation of the IN coprocessor in which it communicates with only one switch. The "one switch-one IN coprocessor" embodiment of the present invention prevents sharing of one IN coprocessor between many switches, and thus provides a better utilization of the database resources, better throughput, and better guarantees that the switch sustains more calls during overloads. However, it is to be understood that the present invention also includes within its scope several switches connected to the same IN coprocessor via a single signal transfer point.